Option Strict On
Option Explicit On
Imports System.Collections.Generic
Public Class GestorEstudios


  



    'Public Function getpro() As CapaDeNegocio.Proto
    '    Dim objDataAccess As laboratorio_Datos.DataAccess = New laboratorio_Datos.DataAccess
    '    Dim objDataReader As OleDb.OleDbDataReader

    '    Dim objproto As CapaDeNegocio.Proto
    '    Dim objList As New List(Of CapaDeNegocio.Proto)


    '    objDataReader = objDataAccess.getDataReader("SELECT id_protocolo FROM LABT_Plan_Protocolo")


    '    objproto = New CapaDeNegocio.Proto
    '    objproto.IDprot = CType(objDataReader!id_protocolo, Integer)

    '    Return objproto
    'End Function

    'Public Function getpro() As Integer

    'Dim objdato As laboratorio_Datos.DataAccess = New laboratorio_Datos.DataAccess
    'Dim objpro As CapaDeNegocio.pro
    'objpro = New CapaDeNegocio.pro
    'objpro.codigo = 3
    'Return objpro.codigo
    'End Function

    ' esta funcion me buscaria los pro que requiero para cargar el combo... devuelve una lista con los codigos de los pro
    Public Function buscarProtocolos() As List(Of Laboratorio_Negocio.CapaDeNegocio.PlanProtocolo)
        Dim objDataAccess As laboratorio_Datos.DataAccess = New laboratorio_Datos.DataAccess ' creo el objeto de la capa de datos
        Dim objDataReader As OleDb.OleDbDataReader 'data reader de mi coneccion
        Dim objList As List(Of Laboratorio_Negocio.CapaDeNegocio.PlanProtocolo) = New List(Of Laboratorio_Negocio.CapaDeNegocio.PlanProtocolo) 'lista de prot
        Dim objProtocolo As Laboratorio_Negocio.CapaDeNegocio.PlanProtocolo
        objDataReader = objDataAccess.getDataReader("SELECT id_protocolo,codigo FROM LABT_Plan_Protocolo") 'lo que me devuelve el objdataaccess es un datareader

        ' comienzo a cargar la lista.... por ultimo se la deberia pasar al combo
        While (objDataReader.Read)
            objProtocolo = New Laboratorio_Negocio.CapaDeNegocio.PlanProtocolo
            objProtocolo.idProtocolo = objDataReader!id_protocolo.ToString
            objProtocolo.codigo = objDataReader!codigo.ToString
            objList.Add(objProtocolo) ' se deberia haber cargado la lista con los codigos
        End While

        Return objList 'retorno la lista(paso al load de del formulario)
    End Function
    Public Function buscarEtapas(ByVal strIdProtocolo As String) As List(Of Laboratorio_Negocio.CapaDeNegocio.Etapa)
        Dim objDataAccess As laboratorio_Datos.DataAccess = New laboratorio_Datos.DataAccess ' creo el objeto de la capa de datos
        Dim objDataReader As OleDb.OleDbDataReader 'data reader de mi coneccion
        Dim objlistEtapas As List(Of Laboratorio_Negocio.CapaDeNegocio.Etapa) = New List(Of Laboratorio_Negocio.CapaDeNegocio.Etapa) ' lista con las etapas

        objDataReader = objDataAccess.getDataReader("SELECT id_etapa,descripcion FROM LABT_Etapa WHERE id_protocolo='" & strIdProtocolo & "'") 'lo que me devuelve el objdataaccess es un datareader
        'cargo la lista con las descripcines de las etapas

        Dim objEtapa As Laboratorio_Negocio.CapaDeNegocio.Etapa
        While (objDataReader.Read)
            objEtapa = New Laboratorio_Negocio.CapaDeNegocio.Etapa
            objEtapa.idetapa = objDataReader!id_etapa.ToString
            objEtapa.descripcion = objDataReader!descripcion.ToString
            objlistEtapas.Add(objEtapa) ' se deberia haber cargado la lista con las descirpciones de las etapas
        End While

        objDataAccess.CloseConnection()

        Return objlistEtapas
    End Function
    'busco las week correspondientes a una etapa determinada y las deberia devolver al combo week
    Public Function buscarWeek(ByVal strIdEtapa As String) As List(Of Laboratorio_Negocio.capaDeNegocio.Week)
        Dim objDataAccess As laboratorio_Datos.DataAccess = New laboratorio_Datos.DataAccess ' creo el objeto de la capa de datos
        Dim objDataReader As OleDb.OleDbDataReader 'data reader de mi coneccion

        Dim objlistWeek As List(Of Laboratorio_Negocio.CapaDeNegocio.Week) = New List(Of Laboratorio_Negocio.CapaDeNegocio.Week) ' lista con las week las voy a identificar por su mumero en la que es unico para la investigacion
        objDataReader = objDataAccess.getDataReader("SELECT id_week,numero  FROM LABT_Week WHERE Id_etapa ='" & strIdEtapa & "'")
        'cargo la lista con las descripcines de las etapas

        Dim objWeek As Laboratorio_Negocio.CapaDeNegocio.Week

        While (objDataReader.Read)
            objWeek = New Laboratorio_Negocio.CapaDeNegocio.Week
            objWeek.idWeek = objDataReader!id_week.ToString
            objWeek.numero = CType(objDataReader!numero, Integer)
            objlistWeek.Add(objWeek) ' se deberia haber cargado la lista con las descirpciones de las etapas
        End While

        objDataAccess.CloseConnection()

        Return objlistWeek
    End Function
    Public Function buscarAnalisis() As List(Of Laboratorio_Negocio.capaDeNegocio.Analisis)
        Dim objDataAccess As laboratorio_Datos.DataAccess = New laboratorio_Datos.DataAccess ' creo el objeto de la capa de datos
        Dim objDataReader As OleDb.OleDbDataReader 'data reader de mi coneccion
        Dim objlistAnalisis As List(Of Laboratorio_Negocio.CapaDeNegocio.Analisis) = New List(Of Laboratorio_Negocio.CapaDeNegocio.Analisis) ' sera una matriz de dos columnas y n filas, la primera columna el id del analisis, la segunda el nombre
        objDataReader = objDataAccess.getDataReader("SELECT id_analisis,descripcion FROM LABT_Analisis")  'lo que me devuelve el objdataaccess es un datareader
        Dim objAnalisis As Laboratorio_Negocio.CapaDeNegocio.Analisis
        'cargo la lista con las descripcines de las etapas
        While (objDataReader.Read)
            objAnalisis = New Laboratorio_Negocio.CapaDeNegocio.Analisis
            objAnalisis.idAnalisis = objDataReader!id_analisis.ToString
            objAnalisis.descripcion = objDataReader!descripcion.ToString
            objlistAnalisis.Add(objAnalisis) ' se deberia haber cargado la lista con las descirpciones de las etapas
        End While

        objDataAccess.CloseConnection()

        Return objlistAnalisis
    End Function
    ' la idea es obtener los datos de la pantalla, y generar la o las instancias nesesarias, llamo a la capa de datos y le grabo lo que necesito
    ' recibe: di_pro,descripcion de etapa, vector de week,
    Public Sub ObtenerDatosParaRegistrarlos(ByVal intID_estudio As Integer, ByVal id_week As Integer)
        Dim objDataAccess As laboratorio_Datos.DataAccess = New laboratorio_Datos.DataAccess ' creo el objeto de la capa de datos

        'objDataAccess.setAgregarRegistros("INSERT INTO LABT_Estudio  (id_estudio, id_week,id_tipo_Estudio ) VALUES ( " & intID_estudio & " , " & id_week & ",1) ")
    End Sub
    Public Function UltimoEstudio() As Integer
        Dim intUltimoId_estudio As Integer
        Dim objDataAccess As laboratorio_Datos.DataAccess = New laboratorio_Datos.DataAccess ' creo el objeto de la capa de datos
        Dim objDataReader As OleDb.OleDbDataReader 'data reader de mi coneccion
        objDataReader = objDataAccess.getDataReader("SELECT max(id_estudio) FROM  LABT_Estudio ")  'lo que me devuelve el objdataaccess es un datareader
        objDataReader.Read()
        If objDataReader.Item(0) Is DBNull.Value Then
            intUltimoId_estudio = 0
        Else : intUltimoId_estudio = CType(objDataReader.Item(0), Integer)
        End If

        Return intUltimoId_estudio
    End Function
    Public Function ID_week(ByVal intNumeroWeek As Integer, ByVal intProtocolo As Integer) As Integer
        Dim intId_weekEncontrada As Integer
        Dim objDataAccess As laboratorio_Datos.DataAccess = New laboratorio_Datos.DataAccess ' creo el objeto de la capa de datos
        Dim objDataReader As OleDb.OleDbDataReader 'data reader de mi coneccion
        objDataReader = objDataAccess.getDataReader("SELECT W.id_week FROM LABT_week W, LABT_etapa E WHERE W.id_etapa=E.Id_etapa and E.id_protocolo = " & intProtocolo & " and W.numero= " & intNumeroWeek & "  ")
        objDataReader.Read()
        intId_weekEncontrada = CType(objDataReader.Item(0), Integer)
        Return intId_weekEncontrada
    End Function

    Public Function ID_Analisis(ByVal strNombreAnalisis As String) As Integer
        Dim IntId_analisis_hallado As Integer
        Dim objDataAccess As laboratorio_Datos.DataAccess = New laboratorio_Datos.DataAccess ' creo el objeto de la capa de datos
        Dim objDataReader As OleDb.OleDbDataReader 'data reader de mi coneccion
        objDataReader = objDataAccess.getDataReader("SELECT A.Id_analisis FROM LABT_analisis A WHERE A.descripcion= '" & strNombreAnalisis & "'   ")
        objDataReader.Read()
        IntId_analisis_hallado = CInt(objDataReader.Item(0))
        Return IntId_analisis_hallado
    End Function
    Public Sub GuardarAnalisis_Estudios(ByVal Id_analisis As Integer, ByVal id_estudio As Integer)
        Dim objDataAccess As laboratorio_Datos.DataAccess = New laboratorio_Datos.DataAccess ' creo el objeto de la capa de datos

        'objDataAccess.setAgregarRegistros("INSERT INTO LABT_Analisis_Estudio  (id_analisis,id_estudio ) VALUES ( " & Id_analisis & " , " & id_estudio & ") ")
    End Sub

End Class


